/*
-----------------------------------------------------------------------------
Filename:    SceneryFactory.h
-----------------------------------------------------------------------------

*/
#ifndef __SceneryFactory_h_
#define __SceneryFactory_h_

#include "NxOgre.h"
#include "critter.h"
#include "WaterEmitter.h"
#include "Lake.h"
#include "ActorEntitySceneNode.h";
#include <vector>;
#include "AppSettings.h";
#include "WorldEnums.h"



class SceneryFactory
{

public:

	SceneryFactory(void);
    ~SceneryFactory(void);

	ActorEntitySceneNode *createScenery(WorldEnums::eSceneryObjects sceneryType, Ogre::String uniqeId, NxOgre::Vec3 position, NxOgre::Scene* mScene, Ogre::SceneManager *mSceneMgr);

private:
	ActorEntitySceneNode *createBoxStaticActor(WorldEnums::eSceneryObjects sceneryType, Ogre::String actorName, Ogre::String meshName, Ogre::Vector3 meshScale, NxOgre::Vec3 collisionBoxSizes, NxOgre::Vec3 position, Ogre::Real heightCorrection, NxOgre::Scene* mScene, Ogre::SceneManager *mSceneMgr);
	ActorEntitySceneNode *createGraphicalActor(WorldEnums::eSceneryObjects sceneryType, bool isHolderActor, Ogre::String actorName, Ogre::String meshName, Ogre::Vector3 meshScale, Ogre::Vector3 position, Ogre::Real heightCorrection, Ogre::SceneManager *mSceneMgr);
};

#endif // #ifndef __SceneryFactory_h_